<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
        继承
            - 可以通过extends关键字完成继承
            - 当一个类继承另一个类时，就相当于将另一个类中的代码复制当了当前类中（简单理解）
            - 继承发生时，被继承的类称为父类（超类），继承的类称为 子类
            - 通过继承可以减少重复的代码，并且可以在不修改一个类的前提对其进行扩展
            封装 - 安全性
            继承 - 扩展性
            多态-  灵活性
    */
    class Animal {
      constructor(name) {
        this.name = name;
      }
      say() {
        console.log(this.name);
      }
    }
    class Dog extends Animal {}
    class Cat extends Animal {}
    let d = new Dog("小狗");
    let c = new Cat("小猫");
    c.say();
    d.say();
    console.log(d, c);
  </script>
</html>
